package logger.sd.server.service;

import java.io.IOException;
import java.util.Timer;
import java.util.TimerTask;

import logger.sd.protocol.LRP;
import logger.sd.server.ServerConfiguration;

/**
 * Servico de Espera
 * 
 * "Alterar o Servico para aguardar (x segundos) - a ideia e emular um servico
 * que consuma um tempo razoavel"
 * 
 * @author Wendell
 * 
 */
public class WaitService extends TimerTask implements Service {

	private Long time;
	private final Timer timer = new Timer();

	/**
	 * Construtor
	 * 
	 * @param Config
	 *            Configuracao do servidor
	 */
	public WaitService(ServerConfiguration config) {
		time = config.getWait();
	}

	/**
	 * Construtor
	 * 
	 * @param Tempo
	 *            Tempo do wait
	 */
	public WaitService(Long t) {
		time = t;
	}

	/**
	 * Execucao do servico de espera(wait)
	 */
	public String trataRequisicao() {

		timer.schedule(this, this.time);
		return LRP.okMessage();

	}

	/**
	 * Sobrecarga metodo de TimerTask, ao mesmo tempo que implementa metodo da
	 * interface Service
	 * 
	 * @exception IOException
	 */
	@Override
	public void run() {

	}

	@Override
	public String getRequest() {
		return "wait";
	}

	@Override
	public String getCode() {
		return LRP.WAIT.getMessage();
	}

}
